Field of the Invention
The present invention relates to an information processing apparatus, a method of controlling the same, and a non-transitory computer readable medium.
Description of the Related Art
Conventionally, an information processing apparatus that can add a function by installing an application is known. A control API (Application Program Interface) for controlling an operation unit or function provided is prepared in such an information processing apparatus, and it is possible to realize various functions by an application using the control API. A USB Host interface is mounted in such an information processing apparatus, and, by calling the USB control API, it is possible to control a USB device connected to the USB Host interface. An IC card reader or a keyboard are raised as examples of a USB device.
For a conventional USB control API, control of a USB device is exclusive, and while an application is controlling a USB device, it is not possible to control the same USB device from another application. Consequently, if there is a desire to control the same USB device from a plurality of applications, there is a necessity to implement such that an application is not in contention with another application for control of the USB device.
For example, a technique that provides a service for managing a transfer of data read from a USB device, wherein an application reads data via the service, is known (for example, the specification of U.S. Pat. No. 8,285,746). By this technique, the service transfers data read from the USB only to an application being displayed on a screen. Therefore, a necessity for the application to be conscious of a display state ceases, and it is possible to realize usage of the same USB device from a plurality of applications by a simpler implementation.
However, to cause the technique of the specification of U.S. Pat. No. 8,285,746 to support an application created by using a conventional USB control API would require modifying the application so as to use the service. Therefore, to cause a plurality of existing applications that perform control of the same USB device to coexist requires changing the implementation of all applications that wish to perform simultaneous use, and there is a problem in that a burden in implementing the applications increases.